One aspect of the positioning of the heads of a disk file to read or write data on information bearing tracks thereof is the so-called `seek` movement between tracks. It is generally desirable to move the heads in the minimum time consistent with minimum final position error and settle time prior to entering the track following mode in which data may be read or written. Track following relies on the provision of position reference information, frequently referred to as "servo patterns", on at least one disk surface. The position reference information may either be on a dedicated servo surface and read by a dedicated servo head or it may be dispersed as servo sectors on the data surfaces and read by the data heads. Generally, the position reference information does not give an absolute position of the head but only an offset position relative to a single track or within a small group of tracks. The seek operation conventionally uses this information to update a register containing either the absolute position or the number of tracks to go to the target track.
The seek movement normally consists of an accelerate phase in which the heads are accelerated as fast as possible in an open loop fashion followed by a decelerate phase in which they are decelerated under some sort of closed loop control to come to rest approximately on the target track. There may also be an intermediate `coast` or constant velocity phase between the accelerate and decelerate phases. Conventionally, the control of deceleration has been achieved by measuring or estimating head velocity and causing it to track a velocity profile. The velocity profile may be calculated on the basis of the square root of the distance-to-go as described in an article by R. E. Oswald entitled "Design of a Disk File Head-Positioning Servo" (IBM Journal of R and D Nov. 1974, pp. 506-512). Alternatively, the profile may be stored in a table which is addressed by the number of tracks to go. One such system is described in EP 0111654 Al.
A recent development in the control of disk file head movement has been the use of sampling of the digitized position error, derived from the position reference information in combination with state estimation control theory as described in "Digital Control of Dynamic Systems" by Franklin and Powell (Addison-Wesley, 1980). U.S. Pat. Nos. 4679103 and 4697127 describe such systems employed in disk files, in which state variables, defined by a mathematical model of the positioning system, are updated at each sampling time by a state estimator. The inputs to the estimator are position error and the currently applied actuator control signal. One output is a velocity estimate which, in the seek mode, is compared with a velocity profile such as in the earlier servo systems.
An ideal actuator is a double integrator system where current in the coil is integrated over time to give velocity, and velocity is integrated to give position. For the case of an ideal actuator with a driver limited to .+-.I amps, the minimum decelerate time is achieve by applying the full decelerate current at a critical distance to go. This distance will then reduce parabolically finally reaching the required position with zero velocity. The ideal velocity profile is thus given by EQU v.sub.t =(2XlK.sub.f /M).sup.1/2
where v.sub.t is the optimum velocity for a given distance-to-go, X; M is the mass of the system and K.sub.f is the force constant of the actuator.
In the prior art implementations the servo has this ideal trajectory or velocity profile, either in a table lookup form or else calculates it on the fly. At each sample time or track crossing, it compares the actuator's velocity and remaining distance to go with the ideal trajectory and increases the drive current to the actuator if the actuator's velocity is above the velocity given by the ideal trajectory for that distance to go, and reduces it if the actuator's velocity is low.
In choosing between table lookup or calculation "on the fly", a trade off must be made between the large code space required for a table with adequate resolution and the length of time required to calculate a square root, an iterative process. Some table lookup algorithms, such as that of EP 0111454 Al, use a compacted table but take more time in accessing the table.
Additionally, four more factors also complicate the situation:
1) If the actuator velocity is found to be greater than the trajectory velocity, the drive needs to be increased Consequently the trajectory must be based on a drive level somewhat less than the full drive available to allow serving actions on a worst case file, typically this is 75%. PA1 2) Due to the time constant of the actuator coil and driver electronics, there will be a delay in applying and removing the force on the actuator. Some form of anticipation is required in deciding when to reverse the drive as the trajectory is approached and also in deciding when to remove the drive and hand over to the settle algorithm. PA1 3) At the final position, there is an extremely high rate of change of current (limited only by the rise time of the coil) and the consequent jerk or rate of change of force can cause problems with resonances in the mechanical system. PA1 4) If the error signal that is generated to apply to the driver is based on the simple approach outlined above, i.e. the servo loop gain factor, K.sub.d, times the difference between the actuator velocity, v.sub.a, and the trajectory velocity, v.sub.t, then, since the error required to produce the drive level implicit in the trajectory is constant, nominally 1/K.sub.d, the error in percentaqe terms increases as the velocity reduces, becoming unacceptable as zero velocity is approached. To compensate for this, either the trajectory can be distorted to allow for the error required or a feedforward current can be added into the error term. However, these solutions introduce further complexity to the system.